#include "ev.h"
#include "bmp.h"
#include "game.h"
 
 
int Get_ev(int *x, int *y)
{
    int flag = 0;
    int flag1 = 3;
    int fd = open("/dev/input/event0", O_RDONLY);
    if (-1 == fd)
    {
        perror("open error");
        return -1;
    }
    struct input_event ev;
    int x1, y1;  // 保存后续的x和y坐标
    int game_over = 0;

    while (1)
    {
        read(fd, &ev, sizeof(ev));
        printf("ev_type = %d code = %d value = %d\n", ev.type, ev.code, ev.value);
        if (ev.type == EV_ABS)  // 如果是绝对事件
        {
            if (ev.code == 0)  // x
            {
                x1 = ev.value * 800 / 1024;
            }
            else  // y
            {
                y1 = ev.value * 480 / 600;
            }
        }
        if (ev.type == EV_KEY && ev.code == 330 && ev.value == 1)  // 保存初始左边
        {
            *x = x1;
            *y = y1;
        }
        if (ev.type == EV_KEY && ev.code == 330 && ev.value == 0)
        {
            if (*x == x1 && *y == y1)  // 点击--确保是刚刚按下点的坐标值
            {
                printf("dianji\n");
                if (game_over)
                {
                    // 处理游戏结束后的点击事件，例如重新开始游戏
                    Dis_pan();
                    game_over = 0;
                    flag1 = 1;
                }
                else if (flag1 == 1)
                    Game_Change(x1, y1);  // 传入点击处的坐标
                if (flag1 != 1)
                {
                    Dis_pan();  // 显示棋盘
                    flag1 = 1;  // 3->1
                }
            }
            if (x1 > *x)  // 右滑
            {
                printf("youhua\n");
                flag1 = 2;  // 显示棋盘
            }
            if (x1 < *x)  // 左滑
            {
                printf("zuohua\n");
                flag1 = 3;  // 显示棋盘
            }
            // 判断游戏是否结束
            if (Game_Over())
            {
                game_over = 1;
            }
        }
    }
}